using System.ComponentModel.DataAnnotations;
using UniversalAdmin.Shared.Enums;

namespace UniversalAdmin.Application.DTOs;

public class DocumentDto
{
    public Guid Id { get; set; }
    public string Title { get; set; } = string.Empty;
    public string? Description { get; set; }
    public string FilePath { get; set; } = string.Empty;
    public long FileSize { get; set; }
    public string FileType { get; set; } = string.Empty;
    public DocumentStatus Status { get; set; }
    public Guid CreatedBy { get; set; }
    public DateTime CreatedAt { get; set; }
    public DateTime? UpdatedAt { get; set; }
}

public class CreateDocumentDto
{
    [Required, MaxLength(100)]
    public string Title { get; set; } = string.Empty;
    public string? Description { get; set; }
    [Required]
    public string FilePath { get; set; } = string.Empty;
    public long FileSize { get; set; }
    [Required, MaxLength(50)]
    public string FileType { get; set; } = string.Empty;
}

public class UpdateDocumentDto
{
    [Required, MaxLength(100)]
    public string Title { get; set; } = string.Empty;
    public string? Description { get; set; }
}

public class UploadDocumentDto
{
    [Required, MaxLength(100)]
    public string Title { get; set; } = string.Empty;
    public string? Description { get; set; }
    [Required]
    public string FilePath { get; set; } = string.Empty;
    public long FileSize { get; set; }
    [Required, MaxLength(50)]
    public string FileType { get; set; } = string.Empty;
}